version 14.2
clear
set more off

*     ****************************************************************  *
*     ****************************************************************  *
*       Filename:       pfp_6_analysis_WGI_yearFE.do                    *
*       Date:           06/03/2017                                      *
*       Author:         Felix Haass, Martin Ottmann                     *
*     ****************************************************************  *
*     ****************************************************************  *



// Alternative Model Specification:
// Year-to-year changes in the WGI measure might not necessarily indicate systematic 
// change due to external drivers of corruption. Yearly changes in Control of Corruption
// can also be caused by changes in the underlying data sources and how these individual 
// sources are aggregated. To account for this possibility, we estimate our models
// using year fixed effects.



******* OVERVIEW *******
******* (1) load data *******
******* (2) Appendix Table 3: OLS regression with year fixed effects *******
******* (3) Appendix Figure 2a: interaction b/w cabinetINC and WBnatres_ln *******
******* (4) Appendix Figure 2b: interaction b/w cabinetINC and aid_gdp_ln *******



******* (1) load data *******

use profits_from_peace_replication_dataset.dta, clear



******* (2) Appendix Table 3: OLS regression with year fixed effects *******

local model1 "cabinetINC WBnatres_ln aid_gdp_ln WBDI_gdppc_ln WBDI_poptotal_ln ethnic polity2"
local model2 "cabinetINC WBnatres_ln aid_gdp_ln WBDI_gdppc_ln WBDI_poptotal_ln ethnic polity2 cabXnatres"
local model3 "cabinetINC WBnatres_ln aid_gdp_ln WBDI_gdppc_ln WBDI_poptotal_ln ethnic polity2 cabXaid"
forval i = 1/3 {
   quietly reg WGI_corrupt `model`i'' i.year if pcy < 6, robust cluster(gwno)
   estimates store model`i'
   estadd local timefe "Yes"
 }
estout model1 model2 model3 ///
, cells(b(star fmt(2)) se(par fmt(2))) starlevels(* 0.10 ** 0.05 *** 0.01) stats(r2 r2_a N, fmt(2 2 0)) legend
esttab ///
model1 model2 model3 ///
using appendix_table_3.tex ///
, b(2) se(2) star(* 0.1 ** 0.05 *** 0.01) ///
stats(N r2_a, fmt(0 2) layout("\multicolumn{1}{c}{@}" "\multicolumn{1}{c}{@}") labels(`"Observations"' `"Adjusted R\textsuperscript{2}"')) ///
title(OLS Regression) ///
mtitles("Model 1" "Model 2" "Model 3") ///
order(cabinetINC WBnatres_ln cabXnatres aid_gdp_ln cabXaid WBDI_gdppc_ln polity2 ethnic WBDI_poptotal_ln) ///
label nogaps nonumbers booktabs fragment ///
replace



******* (3) Appendix Figure 2a: interaction b/w cabinetINC and WBnatres_ln *******

quietly ///
reg WGI_corrupt ///
i.cabinetINC##c.WBnatres_ln ///
c.polity2 c.WBDI_gdppc_ln c.WBDI_poptotal_ln c.ethnic ///
c.aid_gdp_ln ///
i.year if pcy < 6, robust cluster(gwno)
margins, dydx(cabinetINC) at(WBnatres_ln=(0(0.1)4.5) (mean)_c) vsquish
matrix b = r(b)'
matrix list b
matrix b = b[47...,1]
matrix list b
matrix at = r(at)
matrix list at
matrix at = at[1...,"WBnatres_ln"]
matrix list at
matrix v = r(V)
matrix list v
matrix v = v[47...,47...]
matrix list v
matrix se = vecdiag(cholesky(diag(vecdiag(v))))'
matrix list se
matrix d = at,b,se
matrix list d
svmat d, names(d)
generate ul = d2 + 1.96 * d3
generate ll = d2 - 1.96 * d3
clist d1-ll in 1/12
gen yline = 0
graph twoway ///
   (hist WBnatres_ln if pcy < 6, width(0.1) percent color(gs14) yaxis(2) ytitle("Percentage of Observations", axis(2))) ///
   (line d2 d1, clpattern(solid) clwidth(medium) clcolor(black) yaxis(1)) ///
   (line ul d1, clpattern(shortdash) clwidth(thin) clcolor(black)) ///
   (line ll d1, clpattern(shortdash) clwidth(thin) clcolor(black)) ///
   (line yline d1, clwidth(thin) clcolor(black) clpattern(solid)), ///
   xtitle("Natural Resource Wealth (ln)") ///
   ytitle("Conditional Marginal Effect of Executive PS", axis(1)) ///
   ylabel(-1(.5).5) ///
   xlabel(0(1)4.5) ///
   xsize(8) ysize(6) ///
   scheme(lean1) legend(off)
graph export appendix_figure_2a.pdf, replace
drop d1 d2 d3 ul ll yline



******* (4) Appendix Figure 2b: interaction b/w cabinetINC and aid_gdp_ln *******

quietly ///
reg WGI_corrupt ///
i.cabinetINC##c.aid_gdp_ln ///
c.polity2 c.WBDI_gdppc_ln c.WBDI_poptotal_ln c.ethnic ///
c.WBnatres_ln ///
i.year if pcy < 6, robust cluster(gwno)
margins, dydx(cabinetINC) at(aid_gdp_ln=(-11(0.2)1) (mean)_c) vsquish
matrix b = r(b)'
matrix list b
matrix b = b[62...,1]
matrix list b
matrix at = r(at)
matrix list at
matrix at = at[1...,"aid_gdp_ln"]
matrix list at
matrix v = r(V)
matrix list v
matrix v = v[62...,62...]
matrix list v
matrix se = vecdiag(cholesky(diag(vecdiag(v))))'
matrix list se
matrix d = at,b,se
matrix list d
svmat d, names(d)
generate ul = d2 + 1.96 * d3
generate ll = d2 - 1.96 * d3
clist d1-ll in 1/12
gen yline = 0
graph twoway ///
   (hist aid_gdp_ln if pcy < 6, width(0.3) percent color(gs14) yaxis(2) ytitle("Percentage of Observations", axis(2))) ///
   (line d2 d1, clpattern(solid) clwidth(medium) clcolor(black) yaxis(1)) ///
   (line ul d1, clpattern(shortdash) clwidth(thin) clcolor(black)) ///
   (line ll d1, clpattern(shortdash) clwidth(thin) clcolor(black)) ///
   (line yline d1, clwidth(thin) clcolor(black) clpattern(solid)), ///
   xtitle("Foreign Aid Income (ln)") ///
   ytitle("Conditional Marginal Effect of Executive PS", axis(1)) ///
   ylabel(-3(.5)1) ///
   xlabel(-11(2)1) ///
   xsize(8) ysize(6) ///
   scheme(lean1) legend(off)
graph export appendix_figure_2b.pdf, replace
drop d1 d2 d3 ul ll yline
